import fitz  # PyMuPDF
import pytesseract
from PIL import Image
import io

# 配置 tesseract 的安装路径
# 例如，在 Windows 上可能是 'C:/Program Files/Tesseract-OCR/tesseract.exe'
# 在 MacOS 或 Linux 上可能不需要这一步，如果你通过包管理器安装了 tesseract
pytesseract.pytesseract.tesseract_cmd = r'E:\D其他软件\提效工具\tesseract-ocr\tesseract.exe'

# 打开 PDF 文件
pdf_file = fitz.open('TestImagePDF/test.pdf')

# 选择文档中的第一页
first_page = pdf_file[0]

# 提取第一页中的所有图像
image_list = first_page.get_images(full=True)

# 遍历图片列表并使用 PyTesseract 识别图像中的文字
for image_index, img in enumerate(image_list):
    # 获取图片的 XREF
    xref = img[0]
    # 提取图像字节
    base_image = pdf_file.extract_image(xref)
    image_bytes = base_image["image"]
    # 读取图像
    image = Image.open(io.BytesIO(image_bytes))
    # 使用 PyTesseract 识别图像中的文字
    text = pytesseract.image_to_string(image, lang='chi_sim')
    print(f"Image {image_index + 1}:")
    print(text)

# 关闭文档
pdf_file.close()